﻿using System;
using System.Collections.Generic;
using System.ServiceModel;

namespace ET.Score.Service.Interfaces
{
    /// <summary>
    /// </summary>
    [ServiceContract(CallbackContract = typeof(IAccountManageCallBack), SessionMode = SessionMode.Allowed)]
    public interface IAccountManageService
    {
        [OperationContract]
        string SetUserLogin(string UserName, string PassWord, string SerialNumber);

        [OperationContract]
        string GetCurrentStep(int ExamId);

        [OperationContract]
        void TerminateExam(int ExamId);

        [OperationContract]
        void WriteOperatedLog(string JsonOperatedLog);

        [OperationContract]
        void StartExam(int ExamId);

        [OperationContract]
        byte[] GetSceneFile(int ExamId);

        [OperationContract]
        bool GetPermission(int ExamId);

        [OperationContract]
        void SetPermission(int ExamId, bool Permission);

        [OperationContract]
        bool AllowToLogin();

        [OperationContract]
        void Set_TrainInformation(byte[] TrainInfo, int ExamId);

        [OperationContract]
        byte[] Get_TrainInformation(int ExamId);

        [OperationContract]
        string GetExamStepInfo(int ExamId, int StepId);

        [OperationContract]
        void SetVirtualTime(int ExamId, string VitualTime);

        [OperationContract]
        string GetVirtualTime(int ExamId);
        [OperationContract]
        void UpdateStepStatus(int ExamId, int StepId, string SysType = "", string RoleId = "");

        [OperationContract]
        void SetPostPosition(int ExamId, string RoleId, string PositionInfo);

        [OperationContract]
        string GetPostPosition(int ExamId);

        [OperationContract]
        void EnsureLoginInfo(int ExamId, string RoleId, string SysType);

        [OperationContract]
        List<string> GetGroupInfo();

        [OperationContract]
        bool SetGroupInfo(int ExamId);

        [OperationContract]
        int GetDefaultStaionId(int ExamId);

        [OperationContract]
        bool CheckRoleLogin(int ExamId, string SysType);

        [OperationContract]
        string GetSceneType(int ExamId);

        [OperationContract]
        bool AllowTeacherToStart(int ExamId, string SeriesNumber, bool flag = false);

        [OperationContract]
        string GetBranchesVR(int ExamId);

        [OperationContract]
        void ExcuteStepOnce(int ExamId, int StepId);
    }
}
